

<?php
require_once('Init.php');

/**
%20*%20Description%20of%20CodeToGui
%20*
%20*%20@author%20Jens%20Beyer
%20*/
class%20CodeToGui
{
%20%20%20%20protected%20$_at;

%20%20%20%20protected%20$_wholeAjaxContent;

%20%20%20%20protected%20$_fuctionData;

%20%20%20%20protected%20$_sendedAjaxData;

%20%20%20%20protected%20$_ajaxDataToSend;

%20%20%20%20/**
%20%20%20%20%20*
%20%20%20%20%20*%20@var%20array
%20%20%20%20%20*/
%20%20%20%20protected%20$_functionStartEndPoints;

%20%20%20%20protected%20$_functionContent;


%20%20%20%20public%20function%20mainRoutine()
%20%20%20%20{
%20%20%20%20%20%20%20%20$this->_functionCodeStartEndPoints%20=%20array();
%20%20%20%20%20%20%20%20$this->_sendedAjaxData%20=%20file_get_contents('./GetFiles.php');%20//$this->fetchDataFromAjax();
%20%20%20%20%20%20%20%20if%20(empty($this->_sendedAjaxData))%20{
%20%20%20%20%20%20%20%20%20%20%20%20$this->getAt()->display(getDocumentRoot()%20.%20'templates/CodeToGui.tpl');
%20%20%20%20%20%20%20%20%20%20%20%20return%20false;
%20%20%20%20%20%20%20%20}%20else%20{
%20%20%20%20%20%20%20%20%20%20%20%20$this->_wholeAjaxContent%20=%20$this->_sendedAjaxData;%20//urldecode($this->_sendedAjaxData);
%20%20%20%20%20%20%20%20}
%20%20%20%20%20%20%20%20$this->putTextInToFile($this->_wholeAjaxContent,%20'./CodeToSave.php');
%20%20%20%20%20%20%20%20$function%20=%20'getAllGaleriaFiles';
%20%20%20%20%20%20%20%20$this->_functionContent[$function]%20=%20$this->grepFunctionText($function,%20'./CodeToSave.php');
%20%20%20%20%20%20%20%20$this->_functionAddedStaticCall[$function]%20=%20$this->addOnStaticCallInFunction(
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->_functionContent,%20$function
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20);
%20%20%20%20%20%20%20%20$manipulatedFunctionContent%20=
%20%20%20%20%20%20%20%20%20%20%20%20$this->replaceFunctionInCode(
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->_functionAddedStaticCall,
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$function,
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'./CodeToSave.php'
%20%20%20%20%20%20%20%20%20%20%20%20)
%20%20%20%20%20%20%20%20;
%20%20%20%20%20%20%20%20file_put_contents('./manipulatedCode.php',%20$manipulatedFunctionContent);
%20%20%20%20%20%20%20%20$this->appendStaticHelperFunctionsToCodeText('./manipulatedCode.php');
%20%20%20%20%20%20%20%20require_once('./manipulatedCodeAddedStatic.php');
%20%20%20%20%20%20%20%20return%20true;
%20%20%20%20}

%20%20%20%20public%20function%20fetchDataFromAjax()
%20%20%20%20{
%20%20%20%20%20%20%20%20return%20$_REQUEST['text'];
%20%20%20%20}

%20%20%20%20public%20function%20getArrayFromFile($file)
%20%20%20%20{
%20%20%20%20%20%20%20%20$arr%20=%20file($file,%20true);
%20%20%20%20%20%20%20%20return%20$arr;
%20%20%20%20}

%20%20%20%20public%20function%20grepFunctionText($function,%20$file)
%20%20%20%20{
%20%20%20%20%20%20%20%20$arrWholeFile%20=%20$this->getArrayFromFile($file);
%20%20%20%20%20%20%20%20$arrFunction%20=%20array();
%20%20%20%20%20%20%20%20$lineOfFunctionStart%20=%200;
%20%20%20%20%20%20%20%20$lineOfFunctionEnd%20=%200;
%20%20%20%20%20%20%20%20$functionStartFound%20=%20false;
%20%20%20%20%20%20%20%20$functionStartBracketFound%20=%20false;
%20%20%20%20%20%20%20%20$functionEndBracketFound%20=%20false;
%20%20%20%20%20%20%20%20$spaceOfFunctionStartBracket%20=%200;
%20%20%20%20%20%20%20%20$functionEndFound%20=%20false;
%20%20%20%20%20%20%20%20foreach%20($arrWholeFile%20as%20$row)%20{
%20%20%20%20%20%20%20%20%20%20%20%20if%20(!$functionStartFound)%20{
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$lineOfFunctionStart++;
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$lineOfFunctionEnd%20=%20$lineOfFunctionStart;
%20%20%20%20%20%20%20%20%20%20%20%20}%20elseif(!$functionEndBracketFound)%20{
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$lineOfFunctionEnd++;
%20%20%20%20%20%20%20%20%20%20%20%20}
%20%20%20%20%20%20%20%20%20%20%20%20$functionMatch%20=%20'/function%20'%20.%20$function%20.%20'/';
%20%20%20%20%20%20%20%20%20%20%20%20if%20(0%20<%20preg_match($functionMatch,%20$row))%20{
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$arrFunction[]%20=%20$row;
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$functionStartFound%20=%20true;
%20%20%20%20%20%20%20%20%20%20%20%20}%20elseif%20($functionStartFound%20&&%20!$functionStartBracketFound)%20{
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$arrFunction[]%20=%20$row;
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(false%20!==%20strpos($row,%20"{"))%20{
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$spaceOfFunctionStartBracket%20=%20strpos($row,%20"{");
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$functionStartBracketFound%20=%20true;
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}
%20%20%20%20%20%20%20%20%20%20%20%20}%20elseif%20($functionStartBracketFound%20&&%20!$functionEndBracketFound)%20{
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20($spaceOfFunctionStartBracket%20==%20%20strpos($row,%20"}"))%20{
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$functionEndBracketFound%20=%20true;
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$arrFunction[]%20=%20$row;
%20%20%20%20%20%20%20%20%20%20%20%20}
%20%20%20%20%20%20%20%20}
%20%20%20%20%20%20%20%20$arrFunction%20=%20$arrFunction;
%20%20%20%20%20%20%20%20
%20%20%20%20%20%20%20%20$functionEndStartPointArray%20=%20array();
%20%20%20%20%20%20%20%20$functionEndStartPointArray[$function]['start']%20=%20$lineOfFunctionStart-1;
%20%20%20%20%20%20%20%20$functionEndStartPointArray[$function]['end']%20=%20$lineOfFunctionEnd;
%20%20%20%20%20%20%20%20$functionEndStartPointArray%20=%20$functionEndStartPointArray;
%20%20%20%20%20%20%20%20$this->_functionCodeStartEndPoints%20=%20$functionEndStartPointArray;
%20%20%20%20%20%20%20%20return%20$arrFunction;
%20%20%20%20}

%20%20%20%20public%20function%20replaceFunctionInCode($functionArray,%20$function,%20$file)
%20%20%20%20{
%20%20%20%20%20%20%20%20$arrWholeFile%20=%20$this->getArrayFromFile($file);
%20%20%20%20%20%20%20%20$arrWholeFileLen%20=%20count($arrWholeFile);
%20%20%20%20%20%20%20%20$functionContent%20=%20$functionArray[$function];
%20%20%20%20%20%20%20%20$replacedFunctionInCode%20=%20array();
%20%20%20%20%20%20%20%20$counter%20=%200;
%20%20%20%20%20%20%20%20$counterInsertFunction%20=%200;
%20%20%20%20%20%20%20%20$functionStartLine%20=%20$this->_functionCodeStartEndPoints[$function]['start'];
%20%20%20%20%20%20%20%20$functionEndLine%20=%20$this->_functionCodeStartEndPoints[$function]['end'];
%20%20%20%20%20%20%20%20$functionStartFound%20=%20false;
%20%20%20%20%20%20%20%20$functionEndFound%20=%20false;
%20%20%20%20%20%20%20%20$row%20=%20'';
%20%20%20%20%20%20%20%20$row%20=%20'';
%20%20%20%20%20%20%20%20for%20($counter%20=%200;%20$counter%20<%20$arrWholeFileLen;%20$counter++)%20{
%20%20%20%20%20%20%20%20%20%20%20%20if%20(!$functionStartFound%20&&%20$counter%20==%20$functionStartLine)%20{
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$functionStartFound%20=%20true;
%20%20%20%20%20%20%20%20%20%20%20%20}%20elseif%20(!$functionEndFound%20&&%20$counterInsertFunction%20==%20count($functionContent))%20{
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$functionEndFound%20=%20true;
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$counter%20=%20$functionEndLine;
%20%20%20%20%20%20%20%20%20%20%20%20}
%20%20%20%20%20%20%20%20%20%20%20%20if%20(!$functionStartFound)%20{
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$row%20=%20$arrWholeFile[$counter];
%20%20%20%20%20%20%20%20%20%20%20%20}%20elseif(!$functionEndFound)%20{
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$row%20=%20$functionContent[$counterInsertFunction];
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$counterInsertFunction++;
//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20error_log("\nwith%20row%20=%20"%20.%20$row);
%20%20%20%20%20%20%20%20%20%20%20%20}%20else%20{
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$row%20=%20$arrWholeFile[$counter];
%20%20%20%20%20%20%20%20%20%20%20%20}
%20%20%20%20%20%20%20%20%20%20%20%20$replacedFunctionInCode[]%20=%20$row;
%20%20%20%20%20%20%20%20}
%20%20%20%20%20%20%20%20return%20$replacedFunctionInCode;
%20%20%20%20}

%20%20%20%20/**
%20%20%20%20%20*
%20%20%20%20%20*%20@param%20array%20$functionTextArray
%20%20%20%20%20*%20@param%20string%20$function
%20%20%20%20%20*%20@return%20array
%20%20%20%20%20*/
%20%20%20%20public%20function%20addOnStaticCallInFunction($functionTextArray,%20$function)
%20%20%20%20{
%20%20%20%20%20%20%20%20$addedStaticCallInFunction%20=%20array();
%20%20%20%20%20%20%20%20$match%20=%20array();
%20%20%20%20%20%20%20%20$counterLineInOriginalFunction%20=%200;
%20%20%20%20%20%20%20%20foreach%20($functionTextArray[$function]%20as%20$row)%20{
%20%20%20%20%20%20%20%20%20%20%20%20$addedStaticCallInFunction[]%20=%20$row;
%20%20%20%20%20%20%20%20%20%20%20%20if%20(0%20<%20preg_match('/\$\w+%20=%20/',%20$row))%20{
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20preg_match('/\$(\w+)%20=%20/',%20$row,%20$match);
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$lineInCode%20=%20$this->_functionCodeStartEndPoints[$function]['start']%20+%20$counterLineInOriginalFunction;
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$addedStaticCallInFunction[]%20=%20'handleArray('
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.%20'getFunctionName(),%20get_defined_vars(),%20'
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.%20$lineInCode%20.%20',%20'%20.%20$match[1]
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.%20");\n"
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20;
%20%20%20%20%20%20%20%20%20%20%20%20}
%20%20%20%20%20%20%20%20%20%20%20%20$counterLineInOriginalFunction++;
%20%20%20%20%20%20%20%20}
%20%20%20%20%20%20%20%20return%20$addedStaticCallInFunction;
%20%20%20%20}

%20%20%20%20public%20function%20appendStaticHelperFunctionsToCodeText($file)
%20%20%20%20{
%20%20%20%20%20%20%20%20$manipulatedFile%20=%20file_get_contents($file);
%20%20%20%20%20%20%20%20$appendToFile%20=%20file_get_contents('appendToFileImproved.txt');
%20%20%20%20%20%20%20%20$manipulatedFile%20.=%20$appendToFile;
%20%20%20%20%20%20%20%20file_put_contents('manipulatedCodeAddedStatic.php',%20$manipulatedFile);
%20%20%20%20}

%20%20%20%20/**
%20%20%20%20%20*
%20%20%20%20%20*%20@param%20string%20$content
%20%20%20%20%20*/
%20%20%20%20public%20function%20putTextInToFile($content,%20$file)
%20%20%20%20{
%20%20%20%20%20%20%20%20if%20(!empty($content))%20{
%20%20%20%20%20%20%20%20%20%20%20%20file_put_contents($file,%20$content);
%20%20%20%20%20%20%20%20}
%20%20%20%20}

%20%20%20%20public%20function%20sendDataToAjax()
%20%20%20%20{
%20%20%20%20}

%20%20%20%20public%20function%20fetchFunctionData()
%20%20%20%20{

%20%20%20%20}

%20%20%20%20public%20function%20prepareDebugData()
%20%20%20%20{
%20%20%20%20}

%20%20%20%20public%20function%20applyDebugDataToFunction()
%20%20%20%20{

%20%20%20%20}

%20%20%20%20public%20function%20fillStringWithSpecificEscapeSigns()
%20%20%20%20{

%20%20%20%20}

%20%20%20%20public%20function%20getFunctionData()
%20%20%20%20{
%20%20%20%20}

%20%20%20%20public%20function%20getWholeAjaxContent()
%20%20%20%20{
%20%20%20%20%20%20%20%20if%20(!$this->_wholeAjaxContent)%20{
%20%20%20%20%20%20%20%20%20%20%20%20$this->_wholeAjaxContent%20=%20'';
%20%20%20%20%20%20%20%20}
%20%20%20%20%20%20%20%20return%20$this->_wholeAjaxContent;
%20%20%20%20}

%20%20%20%20public%20function%20getAt()%20{
%20%20%20%20%20%20%20%20if%20(!$this->_at)%20{
%20%20%20%20%20%20%20%20%20%20%20%20$this->_at%20=%20Controller::getActionTemplate();
%20%20%20%20%20%20%20%20}
%20%20%20%20%20%20%20%20return%20$this->_at;
%20%20%20%20}


%20%20%20%20//put%20your%20code%20here
}

$codeToGui%20=%20new%20CodeToGui();
$codeToGui->mainRoutine();
